/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.cosmact.vxml.model.util;

import org.cosmact.vxml.gefmodel.IGefModel;
import org.cosmact.vxml.model.*;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see org.cosmact.vxml.model.ModelPackage
 * @generated
 */
public class ModelAdapterFactory extends AdapterFactoryImpl {
	/**
         * The cached model package.
         * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
         * @generated
         */
	protected static ModelPackage modelPackage;

	/**
         * Creates an instance of the adapter factory.
         * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
         * @generated
         */
	public ModelAdapterFactory() {
                if (modelPackage == null) {
                        modelPackage = ModelPackage.eINSTANCE;
                }
        }

	/**
         * Returns whether this factory is applicable for the type of the object.
         * <!-- begin-user-doc -->
	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
	 * <!-- end-user-doc -->
         * @return whether this factory is applicable for the type of the object.
         * @generated
         */
	@Override
	public boolean isFactoryForType(Object object) {
                if (object == modelPackage) {
                        return true;
                }
                if (object instanceof EObject) {
                        return ((EObject)object).eClass().getEPackage() == modelPackage;
                }
                return false;
        }

	/**
         * The switch that delegates to the <code>createXXX</code> methods.
         * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
         * @generated
         */
	protected ModelSwitch<Adapter> modelSwitch =
		new ModelSwitch<Adapter>() {
                        @Override
                        public Adapter caseDocument(Document object) {
                                return createDocumentAdapter();
                        }
                        @Override
                        public Adapter caseDialogType(DialogType object) {
                                return createDialogTypeAdapter();
                        }
                        @Override
                        public Adapter caseDialogXmlContent(DialogXmlContent object) {
                                return createDialogXmlContentAdapter();
                        }
                        @Override
                        public Adapter caseDialog(Dialog object) {
                                return createDialogAdapter();
                        }
                        @Override
                        public Adapter caseDialogConnection(DialogConnection object) {
                                return createDialogConnectionAdapter();
                        }
                        @Override
                        public Adapter caseDialogConnectionType(DialogConnectionType object) {
                                return createDialogConnectionTypeAdapter();
                        }
                        @Override
                        public Adapter caseIGefModel(IGefModel object) {
                                return createIGefModelAdapter();
                        }
                        @Override
                        public Adapter defaultCase(EObject object) {
                                return createEObjectAdapter();
                        }
                };

	/**
         * Creates an adapter for the <code>target</code>.
         * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
         * @param target the object to adapt.
         * @return the adapter for the <code>target</code>.
         * @generated
         */
	@Override
	public Adapter createAdapter(Notifier target) {
                return modelSwitch.doSwitch((EObject)target);
        }


	/**
         * Creates a new adapter for an object of class '{@link org.cosmact.vxml.model.Document <em>Document</em>}'.
         * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
         * @return the new adapter.
         * @see org.cosmact.vxml.model.Document
         * @generated
         */
	public Adapter createDocumentAdapter() {
                return null;
        }

	/**
         * Creates a new adapter for an object of class '{@link org.cosmact.vxml.model.DialogType <em>Dialog Type</em>}'.
         * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
         * @return the new adapter.
         * @see org.cosmact.vxml.model.DialogType
         * @generated
         */
	public Adapter createDialogTypeAdapter() {
                return null;
        }

	/**
         * Creates a new adapter for an object of class '{@link org.cosmact.vxml.model.DialogXmlContent <em>Dialog Xml Content</em>}'.
         * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
         * @return the new adapter.
         * @see org.cosmact.vxml.model.DialogXmlContent
         * @generated
         */
	public Adapter createDialogXmlContentAdapter() {
                return null;
        }

	/**
         * Creates a new adapter for an object of class '{@link org.cosmact.vxml.model.Dialog <em>Dialog</em>}'.
         * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
         * @return the new adapter.
         * @see org.cosmact.vxml.model.Dialog
         * @generated
         */
	public Adapter createDialogAdapter() {
                return null;
        }

	/**
         * Creates a new adapter for an object of class '{@link org.cosmact.vxml.model.DialogConnection <em>Dialog Connection</em>}'.
         * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
         * @return the new adapter.
         * @see org.cosmact.vxml.model.DialogConnection
         * @generated
         */
	public Adapter createDialogConnectionAdapter() {
                return null;
        }

	/**
         * Creates a new adapter for an object of class '{@link org.cosmact.vxml.model.DialogConnectionType <em>Dialog Connection Type</em>}'.
         * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
         * @return the new adapter.
         * @see org.cosmact.vxml.model.DialogConnectionType
         * @generated
         */
	public Adapter createDialogConnectionTypeAdapter() {
                return null;
        }

	/**
         * Creates a new adapter for an object of class '{@link org.cosmact.vxml.gefmodel.IGefModel <em>IGef Model</em>}'.
         * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
         * @return the new adapter.
         * @see org.cosmact.vxml.gefmodel.IGefModel
         * @generated
         */
	public Adapter createIGefModelAdapter() {
                return null;
        }

	/**
         * Creates a new adapter for the default case.
         * <!-- begin-user-doc -->
	 * This default implementation returns null.
	 * <!-- end-user-doc -->
         * @return the new adapter.
         * @generated
         */
	public Adapter createEObjectAdapter() {
                return null;
        }

} //ModelAdapterFactory
